package cn.tedu.ex;
import java.io.*;
//测试 jdk的新特性
//jdk1.7  -- try-with-resources：自动关闭流 -- 自动资源管理
public class TestIO1 {
    public static void main(String[] args) {
//        method();//字节流读取
        method2();
    }
    public static void method2() {
        //TODO jdk1.7 新语法实现了IO的自动资源管理:
        // 优化了释放资源的动作,直接把声明的代码放在try的小括号里就行
        try ( InputStream in = new BufferedInputStream(new FileInputStream("D:\\iotest\\1.txt")); ) {
            //1,创建对象
            //2,正式读取
            int b = in.read() ;
            System.out.println("b = " + b);
        }catch (Exception e){
            e.printStackTrace();
        }
    }
    //字节流读取
    public static void method()  {
        InputStream in = null ;//2,声明变量,因为finally也要用
        try { //test
            //1,创建对象
            in = new BufferedInputStream(new FileInputStream("D:\\iotest\\1.txt"));
            //2,正式读取
            int b = in.read() ;
            System.out.println("b = " + b);
            //TODO jdk1.7新语法提供 : 可以一次catch多个类型 的异常 ,中间用 | 分隔
        }catch (ArithmeticException | IOException e){
            e.printStackTrace();
        } finally {  //1,写一定要被执行的代码,否则发生异常时,异常后面的代码根部不会执行!!
            //3,释放资源
            try {
                in.close();
            } catch (IOException e) {
                e.printStackTrace();
            }
        }
    }
}
